package com.api.apigateway.risk;

import java.util.LinkedHashMap;
import java.util.Map;

/**
 * 数值化特征向量（供模型推理使用）
 * 运行逻辑：FeatureExtractor 将 RiskContext + 时序统计 → 连续/离散特征（0~n）
 */
public class FeatureVector {
    public final Map<String, Double> values = new LinkedHashMap<String, Double>(); // 稳定有序，便于导出

    public FeatureVector put(String name, double v){ values.put(name, v); return this; }

    /** 转为按固定顺序的 double[]，用于模型推理（注意：顺序需与训练保持一致） */
    public double[] toArray(String[] order){
        double[] arr = new double[order.length];
        for (int i=0;i<order.length;i++){
            Double v = values.get(order[i]);
            arr[i] = (v==null? 0.0 : v.doubleValue());
        }
        return arr;
    }
}